Video instability is a common problem in today's camera systems. Cameras are often used in unstable situations, ranging from holding a hand-held camcorder in one's hands, to cameras mounted on moving platforms such as airplanes or automobiles, to surgical visualization systems such as Drive. This results in blurring associated with the motion of a camera or other imaging device during exposure. Video stabilization may be employed to attempt to compensate for the motion. This problem is compounded by several factors.
Video stabilization is a computationally intensive process, especially at high resolutions and frame rates.
Modern CMOS sensors often use a rolling shutter, which makes stabilization more challenging. This is because in addition to correcting for translation and rotation, one also has to correct for a per-row deformation due to the rolling shutter.
In a system where the video feed is used by a human to perform an action, latency is a key factor. Increasing latency increases discomfort and reduces the ability of the operator to perform their task. This is key in applications such as surgical intervention (e.g. endoscopy/exoscopy) and in head-mounted displays.
Video stabilization systems must often operate in compute-limited environments. For example, they are often used in mobile or embedded systems.